package com.ruoyi.business.pay.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 非银行第三方支付机构（拿到支付许可证的）对象 third_payment_agency
 * 
 * @author ruoyi
 * @date 2022-11-11
 */
public class ThirdPaymentAgency extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 机构名称 */
    @Excel(name = "机构名称")
    private String name;

    /** 支付许可证编号 */
    @Excel(name = "支付许可证编号")
    private String warrantNo;

    /** 负责人 */
    @Excel(name = "负责人")
    private String who;

    /** 互联网支付:                 1 = 00000001银行卡收单:                 2 = 00000010预付卡受理:                 4 = 00000100预付卡发行:                 8 = 00001000预付卡发行与受理:   12 = 00001100  (组合项)数字电视支付:           16 = 00010000移动电话支付:           32 = 00100000 固定电话支付:           64 = 01000000该字段为此7项（组合项不算一单独项）的加和。局部范围有效的不再细分（有些业务只能在部分指定地区开展）。目前最大值为 127， 最小值为1。 */
    private Long scope;

    /** 经营范围说明 */
    @Excel(name = "经营范围说明")
    private String scopeRemark;

    /** 注册所在省（市、自治区） */
    @Excel(name = "注册所在省", readConverterExp = "市=、自治区")
    private String registrationArea;

    /** 业务经营地区限制 */
    private String businessArea;

    /** 机构总部详细地址 */
    private String address;

    /** 失效日期， 此日期后或续展、或终止、或被吊销。每次续展的有效期为5年 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期， 此日期后或续展、或终止、或被吊销。每次续展的有效期为5年", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    /** 首次许可日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次许可日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstCreateDate;

    /** 最后一次变更日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次变更日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateDate;

    /** 0-正常； 1-注销 */
    @Excel(name = "状态：0-正常； 1-注销")
    private Long state;

    /** 在中国人民银行官网展示页地址： 前缀为：http://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081702状态正常前缀： http://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081702/4081749/4081783状态注销前缀： http://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081702/4081749/4081786 */
    private String pbcUrl;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setWarrantNo(String warrantNo) 
    {
        this.warrantNo = warrantNo;
    }

    public String getWarrantNo() 
    {
        return warrantNo;
    }
    public void setWho(String who) 
    {
        this.who = who;
    }

    public String getWho() 
    {
        return who;
    }
    public void setScope(Long scope) 
    {
        this.scope = scope;
    }

    public Long getScope() 
    {
        return scope;
    }
    public void setScopeRemark(String scopeRemark) 
    {
        this.scopeRemark = scopeRemark;
    }

    public String getScopeRemark() 
    {
        return scopeRemark;
    }
    public void setRegistrationArea(String registrationArea) 
    {
        this.registrationArea = registrationArea;
    }

    public String getRegistrationArea() 
    {
        return registrationArea;
    }
    public void setBusinessArea(String businessArea) 
    {
        this.businessArea = businessArea;
    }

    public String getBusinessArea() 
    {
        return businessArea;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setExpirationDate(Date expirationDate) 
    {
        this.expirationDate = expirationDate;
    }

    public Date getExpirationDate() 
    {
        return expirationDate;
    }
    public void setFirstCreateDate(Date firstCreateDate) 
    {
        this.firstCreateDate = firstCreateDate;
    }

    public Date getFirstCreateDate() 
    {
        return firstCreateDate;
    }
    public void setLastUpdateDate(Date lastUpdateDate) 
    {
        this.lastUpdateDate = lastUpdateDate;
    }

    public Date getLastUpdateDate() 
    {
        return lastUpdateDate;
    }
    public void setState(Long state) 
    {
        this.state = state;
    }

    public Long getState() 
    {
        return state;
    }
    public void setPbcUrl(String pbcUrl) 
    {
        this.pbcUrl = pbcUrl;
    }

    public String getPbcUrl() 
    {
        return pbcUrl;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("warrantNo", getWarrantNo())
            .append("who", getWho())
            .append("scope", getScope())
            .append("scopeRemark", getScopeRemark())
            .append("registrationArea", getRegistrationArea())
            .append("businessArea", getBusinessArea())
            .append("address", getAddress())
            .append("expirationDate", getExpirationDate())
            .append("firstCreateDate", getFirstCreateDate())
            .append("lastUpdateDate", getLastUpdateDate())
            .append("state", getState())
            .append("pbcUrl", getPbcUrl())
            .append("remark", getRemark())
            .toString();
    }
}
